<?php

require_once ("MateriasBDFacade.php");

class Materia {

    private $codigo = NULL;
    private $nombre = NULL;
    private $numCreditos = NULL;
    private $departamento = NULL;

    function __construct() {
        if (func_num_args() == 1) {
            $fachadaBD = MateriasBDFacade::getInstance();
            if (!($attributes = $fachadaBD->existeMateria(func_get_arg(0)))) {
                die("ERROR: Materia constructor: instance doesn't exists.");
            } else {
                $this->codigo = $attributes[0];
                $this->nombre = $attributes[1];
                $this->numCreditos = $attributes[2];
                $this->departamento = $attributes[3];
            }
        } else if (func_num_args() == 0) {
            //Trivial constructor.
        } else
            die("ERROR: Materia constructor: wrong number of arguments.");
    }

    // Funciones para obtener los atributos

    public function getCodigo() {
        return($this->codigo);
    }

    public function getNombre() {
        return($this->nombre);
    }

    public function getNumCreditos() {
        return($this->numCreditos);
    }

    public function getDepartamento() {
        return($this->departamento);
    }

    public function setNombre($nombre) {
        $this->nombre = $nombre;
    }

    public function setNumCreditos($numCreditos) {
        $this->numCreditos = $numCreditos;
    }

    /*  public function agregarMateria() {
      $A = MapperMateria::getInstance();
      if ($A->agregarMateria($this))
      return TRUE;
      return FALSE;
      } */

    public function set($codigo, $nombre, $numCreditos) {
        $this->codigo = $codigo;
        $this->nombre = $nombre;
        $this->numCreditos = $numCreditos;
    }

}

?>
